﻿using System;
using System.Collections.Generic;
using Nop.Core.Domain.Coffee;


namespace Nop.Services.Coffee
{
    public partial interface ICoffeeService
    {
        void DeactivateBean(Bean bean);
        void DeactivateRecipe(Recipe recipe);
        void DeactivateBlend(Blend blend);
        void DeleteBlendBean(BlendBean blendBean);
        void DeleteRecipeBlend(RecipeBlend recipeBlend);
        IList<Bean> GetAllBeans(bool showInactive = false);
        IList<Blend> GetAllBlends(bool showInactive = false);
        IList<Recipe> GetAllRecipes(bool showInactive = false);
        IList<Bean> GetAllBeansNotInBlend(int blendId, bool showInactive = false);
        IList<Blend> GetAllBlendsNotInRecipe(int recipeId, bool showInactive = false);
        Bean GetBeanById(int beanId);
        Blend GetBlendById(int blendId);
        Recipe GetRecipeById(int recipeId);
        BlendBean GetBlendBeanById(int blendBeanId);
        RecipeBlend GetRecipeBlendById(int recipeBlendId);
        IList<BlendBean> GetAllBlendBeansByBlendId(int blendId);
        IList<BlendBean> GetAllBlendBeansByBeanId(int blendId);
        IList<RecipeBlend> GetAllRecipeBlendsByBlendId(int recipeId);
        IList<RecipeBlend> GetAllRecipeBlendsByRecipeId(int recipeId);
        void InsertBean(Bean bean);
        void InsertBlend(Blend blend);
        void InsertBlendBean(BlendBean blendBean);
        void InsertRecipe(Recipe recipe);
        void InsertRecipeBlend(RecipeBlend recipeBlend);
        void UpdateBean(Bean bean);
        void UpdateBlend(Blend blend);
        void UpdateRecipe(Recipe recipe);
        void UpdateBlendBean(BlendBean blendBean);
        void UpdateRecipeBlend(RecipeBlend recipeBlend);
    }
}
